package cn.harvest.storage.bo.manager;

import java.util.List;

import cn.harvest.storage.dao.DAO;
import cn.harvest.storage.po.MerchandiseType;

public class MerchandiseTypeService {

	private DAO dao = DAO.getDAO();

	private MerchandiseTypeService() {

	}

	public static MerchandiseTypeService getService() {

		MerchandiseTypeService service = new MerchandiseTypeService();
		return service;
	}

	public boolean create(MerchandiseType merchandiseType) {

		return dao.create(merchandiseType);
	}
	
	public boolean update(MerchandiseType merchandiseType) {
		
		return dao.update(merchandiseType);
	}

	public List selectBySQL(MerchandiseType merchandiseType) {

		StringBuffer sql = new StringBuffer();
		sql.append(" SELECT mt.merchandise_type_id, mt.merchandise_type_name, mt.merchandise_type_parent"); 
		sql.append(" FROM merchandise_type mt");
		sql.append(" WHERE 1=1");
		if (!(null == merchandiseType.getMerchandiseTypeId() || "".equals(merchandiseType.getMerchandiseTypeId()))) {
			sql.append(" AND mt.merchandise_type_id = " + merchandiseType.getMerchandiseTypeId());
		}
		if (!(null == merchandiseType.getMerchandiseTypeParent() || "".equals(merchandiseType.getMerchandiseTypeParent()))) {
			sql.append(" AND mt.merchandise_type_parent = '" + merchandiseType.getMerchandiseTypeParent() + "' ");
		}
		if (!(null == merchandiseType.getMerchandiseTypeName() || "".equals(merchandiseType.getMerchandiseTypeName()))) {
			sql.append(" AND mt.merchandise_type_name LIKE '%" + merchandiseType.getMerchandiseTypeName() + "%' ");
		}
		sql.append(" ORDER BY mt.merchandise_type_id;");

		System.out.println("### - MerchandiseTypeService -> selectBySQL -> #SQL \r\n	 " + sql);
		
		return dao.selectBySQL(sql.toString());
	}
	
	public MerchandiseType selectByHQL(String merchandiseTypeId) {
		StringBuffer hql = new StringBuffer();
		hql.append(" FROM MerchandiseType mt WHERE mt.merchandiseTypeId = " + merchandiseTypeId);
		
		System.out.println("### - MerchandiseTypeService -> selectByHQL -> #HQL \r\n	 " + hql);
		
		MerchandiseType merchandiseType = (MerchandiseType) dao.selectByHQL(hql.toString()).get(0);
		return merchandiseType;
	}
	
	public static void main(String[] args) {

	}
}
